import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { ScrollingModule } from '@angular/cdk/scrolling';
import { PortalModule } from '@angular/cdk/portal';
import { OverlaysModule } from '../core/overlay/api';
import { SelectTriggerIconModule } from '../core/select-trigger-icon/api';
import { TreeModule } from '../tree/api';
import { SearchModule } from '../search/api';
import { IconModule } from '../icon/api';
import { OverflowModule } from '../overflow/api';
import { I18NModule, InternalSelectTriggerModule } from '../core/api';
import { EmptyModule } from '../empty/api';
import { TreeSelectFooterComponent } from './treeselect-footer.component';
import { TreeSelectHeaderComponent } from './treeselect-header.component';
import { TreeSelectTriggerComponent } from './treeselect-trigger.component';
import { TreeSelectComponent } from './treeselect.component';

@NgModule({
  declarations: [TreeSelectComponent, TreeSelectTriggerComponent, TreeSelectHeaderComponent, TreeSelectFooterComponent],
  imports: [
    CommonModule,
    FormsModule,
    PortalModule,
    OverlaysModule,
    TreeModule,
    SearchModule,
    IconModule,
    OverflowModule,
    I18NModule,
    ScrollingModule,
    EmptyModule,
    SelectTriggerIconModule,
    InternalSelectTriggerModule,
  ],
  exports: [TreeSelectComponent, TreeSelectTriggerComponent, TreeSelectHeaderComponent, TreeSelectFooterComponent],
})
export class TreeSelectModule {}
